]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Improve comment about button-release-event handler
authorOwen W. Taylor <otaylor@fishsoup.net>
Fri, 28 Aug 2009 16:40:56 +0000 (12:40 -0400)
committerOwen W. Taylor <otaylor@fishsoup.net>
Fri, 28 Aug 2009 16:40:56 +0000 (12:40 -0400)
Improve the documentation about the button-release-event handler
we put on the status-menu button at Colin's suggestion.

http://bugzilla.gnome.org/show_bug.cgi?id=593362

js/ui/panel.js

index 5c9330ef1e6727e9e113040a3e3770634e449181..4a750562782e42df01c228bfd632830a28c2800e 100644 (file)
@@ -381,9 +381,14 @@ Panel.prototype = {
             statusmenu.toggle(e);
             return false;
         });
-        // This depends on connection ordering: since we are after the Button's
-        // ::button-release-event handler, calling button.release() will properly
-        // unset the 'active' flag for this stays-pressed button
+        // If popping up the menu failed (because there was already a grab in
+        // effect from Mutter or another app), then we'll never get a ::deactivated
+        // signal because the menu was never activated, so we need to unhighlight
+        // separately when the user releases the mouse button.
+        //
+        // We depend on connection ordering; this needs to be called after Button's
+        // ::button-release-event handler; that will set the active flag for this
+        // stays-pressed button, then we unset the active flag by calling release().
         statusbutton.button.connect('button-release-event', function (b, e) {
             if (!statusmenu.is_active())
                 statusbutton.release();